﻿using System;

namespace test_10_4_C_Sharp
{
    //class Person
    //{
    //    private String name;
    //    private int age;
    //    private String sex;
    //    public string Name
    //    {
    //        get { return name; }
    //        set { name = value; }
    //    }
    //    public int Age
    //    {
    //        get { return age; }
    //        set
    //        {
    //            if (value > 0 && value <= 120)
    //                age = value;
    //        }
    //    }
    //    public String Sex
    //    {
    //        get { return sex; }
    //        set { sex = value; }
    //    }
    //}
    //class Student : Person
    //{
    //    public static double chinese = 105;
    //    public static double math = 106;
    //    public static double english = 71;
    //    public static double physics = 82;
    //    public static double chemistry = 75;
    //    public static double GPA = (chinese + math + english 
    //        + physics + chemistry) / 5;//平均
    //    public Student()
    //    {
    //        Name = "叶豪方";
    //        Console.WriteLine("无参构造函数已执行");
    //    }
    //    public Student(int tmp)
    //    {
    //        Age = 20;//初始化年龄
    //        Console.WriteLine("一、带参构造函数被执行");
    //    }
    //    public Student(ref int tmp)
    //    {
    //        Sex = "男";
    //        Console.WriteLine("二、带参构造函数被执行");
    //    }
    //    public Student(int tmp1, int tmp2)
    //    {
    //        Console.WriteLine("三、带参构造函数被执行");
    //    }
    //    public Student(int tmp1, int tmp2, int tmp3)
    //    {
    //        Console.WriteLine("四、带参构造函数被执行");
    //    }

    //}
    //class Program
    //{
    //    static void Main(string[] args)
    //    {
    //        Console.WriteLine("我是叶豪方，这是我的上机作业7");
    //        int tmp = 0;
    //        Student student = new Student();
    //        Student student1 = new Student(tmp);
    //        Student student2 = new Student(ref tmp);
    //        Student student3 = new Student(tmp, tmp + 1);
    //        Student student4 = new Student(tmp, tmp + 1, tmp + 2);
    //        Console.WriteLine("姓名:{0}\n年龄:{1}岁\n性别:{2}\n", 
    //            student.Name, student1.Age, student2.Sex);
    //        Console.WriteLine("平均成绩为:{0}", Student.GPA);
    //    }
    //}

    //class Drawing//图像类
    //{
    //    public virtual void grape()
    //    {
    //        //虚方法调用
    //        Console.WriteLine("作图中");
    //    }
    //}
    ////点型继承图
    //class Dot : Drawing
    //{
    //    public override void grape()
    //    {
    //        Console.WriteLine("这是点");
    //    }
    //    public Dot()
    //    {
    //        Console.WriteLine("派生-Dot");
    //    }
    //}
    ////线型继承图
    //class Line : Drawing
    //{
    //    public override void grape()
    //    {
    //        Console.WriteLine("这是线");
    //    }
    //    public Line()
    //    {
    //        Console.WriteLine("派生-Line");
    //    }
    //}
    ////矩形继承图
    //class Rectangle : Drawing
    //{
    //    public override void grape()
    //    {
    //        Console.WriteLine("已生成矩形");
    //    }
    //    public Rectangle()
    //    {
    //        Console.WriteLine("派生-Rectangle");
    //    }
    //}
    ////圆形继承图
    //class Circle : Drawing
    //{
    //    public override void grape()
    //    {
    //        Console.WriteLine("已生成圆");
    //    }
    //    public Circle()
    //    {
    //        Console.WriteLine("派生-Circle");
    //    }
    //}
    //class Program
    //{
    //    static void Main(string[] args)
    //    {
    //        Console.WriteLine("我是叶豪方，这是我的上机作业7");
    //        Drawing dra = new Drawing();
    //        dra = new Dot();
    //        dra.grape();
    //        dra = new Line();
    //        dra.grape();
    //        dra = new Rectangle();
    //        dra.grape();
    //        dra = new Circle();
    //        dra.grape();
    //    }
    //}

    //运动类-基类
    class Sports
    {
        public virtual void Play()
        {
            Console.WriteLine("Play！");
        }
    }

    //足球类
    class Football : Sports
    {
        public override void Play()
        {
            Console.WriteLine("足球是用脚踢的！");
        }
    }

    //篮球类
    class Basketball : Sports
    {
        public override void Play()
        {
            Console.WriteLine("篮球是用手打的！");
        }
    }
    class Program
    {
        public static void HowToPlay(Sports sp)
        {
            sp.Play();
        }
        public static void Main(string[] args)
        {
            Console.WriteLine("我是叶豪方，这是我的上机作业7");
            Sports sp = new Sports();
            Basketball basketball = new Basketball();
            sp = new Football();
            HowToPlay(sp);
            sp = new Basketball();
            HowToPlay(sp);

        }
    }
}
